// 1752. 检查数组是否经排序和轮转得到
// 给你一个数组 nums。 nums 的源数组中， 所有元素与 nums 相同， 但按非递减顺序排列。

// 如果 nums 能够由源数组轮转若干位置（ 包括 0 个位置） 得到， 则返回 true； 否则， 返回 false。

// 源数组中可能存在 重复项。

// 注意： 我们称数组 A 在轮转 x 个位置后得到长度相同的数组 B， 当它们满足 A[i] == B[(i + x) % A.length]， 其中 % 为取余运算。
// [1,2,3,4,5]=>[5,1,2,3,4]=>[4,5,1,2,3]=>[3,4,5,1,2]=>[2,3,4,5,1]=>[1,2,3,4,5]
// 从而得知若发生轮转 最多只有一个递减
/**
 * @param {number[]} nums
 * @return {boolean}
 */
var check = function (nums) {
  //
  let n = nums.length
  let isReverse = nums[0] >= nums[n - 1]
  for (let i = 0; i < n - 1; i++) {
    if (nums[i] > nums[i + 1]) {
      if (isReverse) {
        isReverse = false
      } else {
        return false
      }
    }

  }
  return true
};
var nums = [2, 1, 3, 4]
console.log(check(nums))
